提交了 patch 之后,发现有个修改没做,再提交一个 patch 也可以,但是如果一开始就修改了提交一个 patch,对于之后检索和 review 会更加清晰。
首先提交了两个 patch,然后将两个 patch 合并成一个。需将最新的 patch 合并到前者,以前者为准。
1. 鼠标选中比 old patch 更老的一个,右键选择 >>Rebase Current Branch onto Commit...
2. 点击 >>Interactive Rebase --interactive
3. 点击需要调整的 patch,将 pick
设置为 squash
, >>GitLens Interactive Rebase
- 两排黑点可以拖动,将需要合并的 patch 拖到 old patch 紧挨着的上面
4. 点击 VS 右下角START REBASE
- 如果在这里反悔了,可点击
ABORT
5. 此时 VS 提供一个编辑界面,可修改提交信息
6. 修改完成之后,关闭编辑界面之后即可等待完成
- VScode 是调用了 Git 提供的命令完成了操作
squash
可以合并多个 patch,将紧挨着的 patch 选择squash
即可- 需要注意的是,patch 合并应该是有依赖的,不过用于修改某个小地方是非常不错的
关键字 | 关键字的作用 | 是否用过 |
---|---|---|
pick | 不做改变 | ✓ |
reword | 修改提交信息 | ✓ |
edit | 修改提交的 patch,修改后需要在中断运行 git rebase --continue |
✓ |
squash | 合并该 patch 到相邻更老的 patch 上,并修改提交信息 | ✓ |
fixup | 不太清楚 | - |
drop | 删除 | - |
注意
- 在合并 patch 时,很容易因为之前的修改导致不一致而产生冲突,所以通过 edit 修改,会回到 patch 的状态,修改之后往后同步。